home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d3 / rettig.arc / TRSOURCE.EXE / PEEKLONG.ASM < prev    next >
Assembly Source File  |  1990-10-22  |  2KB  |  57 lines

  1. ; PEEKLONG.ASM
  2. ;
  3. ; by Ralph Davis
  4. ; modified by Leonard Zerman
  5. ;
  6. ; Placed in the public domain by Tom Rettig Associates, 10/22/1990.
  7. ;
  8.          PUBLIC   PEEKLONG
  9.  
  10.          EXTRN    _TR_PEEK_PARMS:FAR
  11.  
  12.          INCLUDE  EXTENDA.MAC
  13.  
  14.  
  15. ;*****************************************************
  16. PEEKLONG_TEXT SEGMENT BYTE PUBLIC 'CODE'
  17.          ASSUME   CS:PEEKLONG_TEXT
  18. ;-----------------------------------------------------
  19. ;
  20. ;     PEEKLONG(segment, offset)
  21. ;
  22. ;        segment = SPACE(4)    && hexadecimal string
  23. ;        offset  = number < 65536 or hexadecimal string
  24. ;
  25. ;        Returns:  double word at segment:offset as a long integer
  26. ;                  -1 if less than two parameters passed
  27. ;
  28. ;--------------
  29. PEEKLONG PROC     FAR
  30.          PUSH     BP
  31.          MOV      BP,SP
  32.          PUSH     DS
  33.          PUSH     ES
  34.          PUSH     SI
  35.          CALL     _TR_PEEK_PARMS
  36.          JL       PEEKLONG_ERR   ; Sign flag set means less than 2 parms
  37.          MOV      DS,SI
  38.          MOV      SI,AX          ; DS:SI now points to requested double word
  39.          MOV      BX,[SI]        ; pick it up
  40.          MOV      AX,[SI+2]      ; in AX:BX
  41.          JMP      SHORT PEEKLONG_EXIT   ; and we're done
  42. PEEKLONG_ERR:
  43.          MOV      AX,-1          ; return -1 for error condition
  44.          MOV      BX,AX
  45. PEEKLONG_EXIT:
  46.          POP      SI
  47.          POP      ES
  48.          POP      DS
  49.          POP      BP
  50.          RET_LONG AX,BX          ; return long integer to caller
  51.          RET
  52. PEEKLONG ENDP
  53. ;------------------------------------------------
  54. PEEKLONG_TEXT   ENDS
  55. ;************************************************
  56.          END
  57.